1 Introduction of Project

2019년 발표된 문화체육관광부의 자료에 따르면 음악 산업 시장은 2016년부터 2018년까지 꾸준하게 매출액이 증가하고 있다. 실제로 음원 시장에서 다양한 부가 가치가 창출 되고 ‘해외 진출에 따른 발전 가능성도 커질 것으로’(추승엽 외,2016) 기대된다. 성장하는 음원시장의 대표적인 지표로 음원 순위가 주목되고 있다. 따라서 성장하는 음원시장의 주표지표인 음원 순위를 예측하는 것만으로도 상당한 유의미한 정보가 될 것이다.

추가적으로 이러한 지표를 이용하기 위해 소위 ‘음원 사재기’로 불리는 논란이 지속되고 있다. 따라서 우리는 기존의 음원 데이터를 바탕으로 음원순위를 예측모형을 만들고, 예측 모형에 크게 벗어나는 결과가 나오다면, 음원 사재기와 같은 음원 시장 혼란 요인을 찾을 수 있을 것이다. 따라서 우리의 목표는 다음이다.


음원 데이터를 활용한 주간음원순위 예측


1.1 크롤링

음원 시장은 시대의 특성이 반영되며 기존의 음반 산업과 다르게 ‘다양한 변수에 의해 영향을 받는 시장’(추승엽 외, 2016)으로 변화 하고 있다. 특히 변화하는 트랜드에 따라 ‘음원 시장은 유투브, SNS, 인터넷 사이트 등 다양한 플랫폼의 영향이 커지고’(김가연 외, 2018) 있다. 따라서 우리는 선행논문들을 참고하여 다음의 사이트에서 제공되는 데이터를 활용해 주간음원순위를 예측해 보고자 한다.

이상 7개의 사이트의 정보 중 2018년 4월 이후의 데이터를 크롤링하였다. 해당 일을 기준일로 한 이유는 유튜브 데이터가 그 시점 부터 제공되었기 때문이다.

1.2 사용한 변수

다양한 사이트를 통해 얻은 데이터를 기간(주를 단위로 매주 일요일부터 토요일까지), 곡명, 가수명를 key로 합쳤다. 그러기 위해 각각 알맞게 전처리를 실시하였다. 예를 들어 DC데이터의 경우 갤럴리명(가수명)별로 주간 기준에 따라 분류 후, 조회수는 단순 합을, 게시글수와 추천수는 평균낸 값을 사용하였다.

또한 우리가 예측하고자 하는 주간 순위는 가온차트에서 뽑은 1~100위 까지의 순위를 10개의 그룹으로 나누어 만들었다. 즉 1그룹은 1위~10위를, 2그룹은 11위~20위를, 10그룹은 91위~100위를 의미한다.

이후 예측의 정확도를 높이기 위해 2가지 변수를 추가하였다. 먼저, 이전 곡 순위는 해당 가수명에 따른 이전의 곡 순위중 가장 높은 순위를 구했다. 그리고 계절변수는 각 노래가 음원차트에 올라왔을 때의그 시점의 계절을 의미한다. 아래는 우리가 모형에 상용하고자 하는 데이터들의 변수 정보를 정리한 표이다.

변수명 변수의 의미 출처
rank_g 10구간화한 곡 순위 가온차트
you_rank_g
previous_ranking 신곡의 경우 이전 곡의 최고순위, 기존에 있는 경우 전주차 순위 파생변수
genre 노래 장르 지니
season 계절 파생변수
season_genre_score 장르별 계절간 추이로 genre와 season?? 파생변수
sex 가수 성별 지니
song_type 음악종류 지니
active_type
runtime
top_freq
gg_score 가수별 주간 구글 트렌드 구글 트렌드
nv_score 가수별 주간 네이버 트렌드 네이버 데이터랩
total_view
pd_score
dc_total_numb 가수별 주간 게시물 총수 DC 갤러리
dc_mean_reccomend 가수별 주간 평균 추천수 DC 갤러리
dc_mean_views 가수별 주간 평균 조회수 DC 갤러리
drama_view OST곡일 경우 해당프로그램 시청률 Nielsen코리아

아래의 테이블은 하나로 합치고 scale 전의 raw 데이터이다. 검색을 통해 그 값들을 확인해 볼 수 있다.

2 EDA

모형을 분석하기 전 EDA를 실시하였다.

3 Process of Data preprocessing

각각의 변수별로 다른 scale인 것을 볼 수 있다. 따라서 분석을 위해 변수를 동일한 scale로 만들어 주기 위해 Mean max scaling을 실시 하였다.

또한 Log transformation를 실시하였다. 그 결가 아래의 그래프처럼 각 변수들이 정규화 된 것을 볼 수 있다.

4 Modeling

우리는 총 4가지의 모델을 사용하였고 그 중 가장 최적의 모델을 찾아 우리의 최종 모형을 사용하고자 하였다. 4가지 모델로 Logistic regression, Random forest. XG boost, Cat boost를 사용하였다. 모델 비교의 지표로 F1-score를 사용하였다.

4.1 Logistic regression

ordinal 변수이기에 cumulative logistic regression을 사용하는 것이 적절하나, 다른 모델은 random forest와 boost 기법을 사용하고, 우리의 목표도 순위 예측이기에 설명력보다는 예측력 모델인 generalized logistic regression을 실시하였다. 그 결과는 다음과 같다.

4.2 Random forest

4.3 XG boost

4.4 Cat boost

범주형 변수 많아서 Grid Search를 통해서 최적의 Hyper Parameter 탐색

5 Result

이상의 결과에서 Cat boost를 사용했을 때 가장 높은 F1-score를 보였다. 이 모형을 우리의 최종 예측모형으로 정하고,Shiny 패키지를 이용해 반응형 웹을 구현하였다. 아래의 주소를 통해 들어가 직접 예측을 해볼 수 있다.